package com.lianjia.sh.se.kafka.client.constants;

import org.springframework.beans.factory.annotation.Value;

/**
 * 消费者配置常量
 * Created by yangsp1 on 16/7/29.
 */
public abstract class ConsumerCons {

    //必须：kafka集群ip配置
    public static final String BOOTSTRAP_SERVERS_NAME ="bootstrap.servers";
    
    //必填：(kafka默认不必须，有默认值，但实际业务中为了防止使用混乱，不允许空）集群消费时，防止重复消费
    // 多个consumer，如果有相同groupId，则相当于队列，只有一个consumer消息，否则为订阅，为同时消费
    public static final String GROUP_ID_NAME = "group.id";
    
    //自动提交offset
    public static final String ENABLE_AUTO_COMMIT_NAME = "enable.auto.commit";
    
    //offset自动提交频率
    public static final String AUTO_COMMIT_INTERVAL_MS_NAME = "auto.commit.interval.ms";
    
    //key反序列化器
    public static final String KEY_DESERIALIZER_NAME = "key.deserializer";
    
    //key反序列化器
    public static final String VALUE_DESERIALIZER_NAME = "value.deserializer";

    //客户端id，一般指应用名或业务名
    public static final String  CLIENT_ID_NAME = "client.id";

    //此时可以配置指定大小：提交性能；但会增加延迟返回（因为只有达到一定数据量才会返回）
    public static final String  FETCH_MIN_BYTES_NAME = "fetch.min.bytes";


    //一次请求最多数据量,kafka通过批处理来提高性能。此配置是一次拉取的最大数据条数
    public static final String  MAX_POLL_RECORDS_NAME = "max.poll.records";

    //请求超时时间
    public static final String  REQUEST_TIMEOUT_MS_NAME = "request.timeout.ms";

    //批处理时间间隔（单位：毫秒）：缓冲时间超过此值就把消息发送到服务器
    public static final String  LINGER_MS_NAME = "linger.ms";



}
